1
流是 Ruby I/O 的基础
AI035Lesson 6
00:00

在 Ruby 中,输入/输出不仅仅是命令集合;它是一种高度复杂的 基于流的架构。该系统的核心是 IO 类,它充当一个 双向通道 连接你的程序与外部世界之间的通道。无论你是在与文件、网络套接字还是用户的终端交互,Ruby 都会将它们视为通用的流。

1. 双向桥梁

一个 IO 对象是一种统一的抽象。尽管操作系统将读写视为不同的 文件描述符 (如管道中),Ruby 将这些封装为单一对象。这使得数据可以在两个方向上无缝流动。

Ruby 程序资源IO 对象

2. 核心模块与标准过滤器

核心 Kernel 模块提供了诸如 getsprint等方法。它们本质上是 过滤器 ,它们会将请求委派给全局常量 STDINSTDOUT。这意味着你的代码可以在操作系统层面被重定向,以处理文件或网络流,而无需更改任何一行逻辑。

$$\text{流} \rightarrow \text{缓冲区} \rightarrow \text{Ruby 解释器}$$

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>